package cn.com.surker.report.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.Date;

/**
 * <p>
 * 经营分析
 * </p>
 *
 * @author admin
 * @since 2022-09-14
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class ReportFinance implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 标识
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 类型描述
     */
    private String name;

    /**
     * 统计日期(格式yyyy-MM-dd)
     */
    private String today;

    /**
     * 类型(0:日1:月2:年)
     */
    private Integer type;

    /**
     * 数据源Code
     */
    private String code;

    /**
     * 公司ID
     */
    private Long orgId;

    /**
     * 公司名称
     */
    private String orgName;

    /**
     * 费用报销金额
     */
    private Double costMoney;

    /**
     * 生产付款
     */
    private Double proMoney;

    /**
     * 主材付款金额
     */
    private Double mainMoney;

    /**
     * 辅材付款金额
     */
    private Double assistMoney;

    /**
     * 回款金额(元)
     */
    private Double returnMoney;

    /**
     * C20成本价格
     */
    private Double stereMoney1;

    /**
     * C25成本价格
     */
    private Double stereMoney2;

    /**
     * C30成本价格
     */
    private Double stereMoney3;

    /**
     * C35成本价格
     */
    private Double stereMoney4;
    /**
     * 总付款金额
     */
    private Double payMoney;

    /**
     * 单方成本分析
     */
    private String primeCost;
    /**
     * 付款分析(报销、主材、生产、辅材)
     */
    private String payData;
    /**
     * 收支分析(回款、付款)
     */
    private String paymentData;
    /**
     * 净收分析
     */
    private String incomeData;

    /**
     * 状态(0:启用1:禁用)
     */
    private Integer status;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date createTime;

    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date updateTime;

    /**
     * 销售金额
     */
    private Double saleMoney;
    /**
     * 签收方量
     */
    private Double signStere;

    /**
     * 回款率
     */
    private Double returnRate;

    /**
     * 单方销售成本
     */
    private Double saleCost;

    /**
     * 单方支出成本
     */
    private Double payCost;

    public ReportFinance(){

    }

    public ReportFinance(String name, String today, Integer type, String code, Long orgId, String orgName,
                         Double costMoney, Double proMoney, Double mainMoney, Double assistMoney,
                         Double returnMoney, Double stereMoney1, Double stereMoney2, Double stereMoney3,
                         Double stereMoney4, Double payMoney, String primeCost, String payData, String paymentData,
                         String incomeData, Integer status, Date createTime, Date updateTime, Double saleMoney,
                         Double signStere, Double returnRate, Double saleCost, Double payCost) {
        this.name = name;
        this.today = today;
        this.type = type;
        this.code = code;
        this.orgId = orgId;
        this.orgName = orgName;
        this.costMoney = costMoney;
        this.proMoney = proMoney;
        this.mainMoney = mainMoney;
        this.assistMoney = assistMoney;
        this.returnMoney = returnMoney;
        this.stereMoney1 = stereMoney1;
        this.stereMoney2 = stereMoney2;
        this.stereMoney3 = stereMoney3;
        this.stereMoney4 = stereMoney4;
        this.payMoney = payMoney;
        this.primeCost = primeCost;
        this.payData = payData;
        this.paymentData = paymentData;
        this.incomeData = incomeData;
        this.status = status;
        this.createTime = createTime;
        this.updateTime = updateTime;
        this.saleMoney = saleMoney;
        this.signStere = signStere;
        this.returnRate = returnRate;
        this.saleCost = saleCost;
        this.payCost = payCost;
    }
}
